﻿using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
using TSharp.Core.Osgi;
using TSharp.Core.Osgi.Internal;
using TSharp.Core.Util;
using TSharp.Core.Services;
using RazorEngine.Compilation;
using TSharp.Core;
using System;
using TSharp.Core.Util.TypeConvert;

// 有关程序集的常规信息通过以下
// 特性集控制。更改这些特性值可修改
// 与程序集关联的信息。

[assembly: AssemblyTitle("TSharp.Core")]
[assembly: AssemblyDescription("")] 
 

// 将 ComVisible 设置为 false 使此程序集中的类型
// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型，
// 则将该类型上的 ComVisible 特性设置为 true。
  
// 如果此项目向 COM 公开，则下列 GUID 用于类型库的 ID

[assembly: Guid("743c8b29-c1a5-4fe9-88c9-e1b177f9c3c7")]

 
[assembly: RegExtensionPoint(typeof(ServiceManager))]
[assembly: RegExtensionPoint(typeof(TypeInitExtensionPoint))]
[assembly: RegExtensionPoint(typeof(ApplicationEventManager))]
[assembly: RegExtensionPoint(typeof(LazyLoading))]
[assembly: RegExtensionPoint(typeof(OsgiEventManager))]

[assembly: RegService(typeof(NullableBooleanTypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(NullableCharTypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(NullableSByteTypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(NullableByteTypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(NullableInt16TypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(NullableUInt16TypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(NullableInt32TypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(NullableUInt32TypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(NullableInt64TypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(NullableUInt64TypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(NullableSingleTypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(NullableDoubleTypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(NullableDecimalTypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(NullableDateTimeTypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(StringTypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(NullableGuidTypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(NullableTimeSpanTypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(NullableDateTimeOffsetTypeDetectorImpl), Level.THREAD)]
[assembly: RegService(typeof(EnumTypeDetectorImpl<>), Level.THREAD)]
[assembly: RegService(typeof(FormaterBase<>), Level.THREAD)]


[assembly: RegService(typeof(ITemplateParserService), typeof(TemplateParserService), Level.THREAD)]
[assembly: RegLazyLoading(typeof(ICompilerServiceFactory), typeof(DefaultCompilerServiceFactory), Priority = LoadingPriority.Lowest)]
